function mergeSortedArrays (arr1, arr2) {
  // 初始化双指针和结果数组
  let i = 0; // 指向 arr1 的当前元素
  let j = 0; // 指向 arr2 的当前元素
  const result = []; // 存储合并后的有序数组

  // 当两个数组都未遍历完时，比较并合并
  while (i < arr1.length && j < arr2.length) {
    if (arr1[i] <= arr2[j]) {
      // arr1 当前元素更小，放入结果并移动 arr1 指针
      result.push(arr1[i]);
      i++;
    } else {
      // arr2 当前元素更小，放入结果并移动 arr2 指针
      result.push(arr2[j]);
      j++;
    }
  }

  // 处理 arr1 剩余元素（如果有的话）
  while (i < arr1.length) {
    result.push(arr1[i]);
    i++;
  }

  // 处理 arr2 剩余元素（如果有的话）
  while (j < arr2.length) {
    result.push(arr2[j]);
    j++;
  }

  return result;
}

// 测试示例
const arr1 = [1, 3, 5, 7, 9, 11, 12, 14];
const arr2 = [2, 4, 6, 8, 10];
const merged = mergeSortedArrays(arr1, arr2);
console.log("合并后的有序数组：", merged); // 输出 [1, 2, 3, 4, 5, 6, 7, 8, 10]
